package com.um.jdy.rpc.api;

import com.um.jdy.rpc.entity.EBDeviceParams;
import com.um.jdy.rpc.entity.EBoxDeviceInfo;
import com.um.springcloud.dubbo.cluster.DeviceKey;

/**
 * 充电柜
 * 平台调用设备RPC
 *
 * @author 邓南辉
 * 日期 2022/3/30
 * 版权所有 广州优匠科技有限公司
 */
public interface RpcEBoxDeviceService {

    /**
     * 请求启动充电
     *
     * @param seq        序列号
     * @param imei IMEI码
     * @param port       端口号
     * @param duration   充电时长(秒)
     */
    String reqStartCharge(String seq, DeviceKey imei, Integer port, Integer duration,String password);

    /**
     * 请求停止充电
     *
     * @param seq        序列号
     * @param imei       IMEI码
     * @param port       端口号
     */
    String reqStopCharge(String seq, DeviceKey imei, Integer port);

    /**
     * 请求查询端口状态
     *
     * @param seq        序列号
     * @param imei       IMEI码
     */
    String reqQueryPorts(String seq, DeviceKey imei);

    /**
     * 请求下发语音播放
     *
     * @param seq        序列号
     * @param imei       IMEI码
     * @param voice      播放文字
     */
    String reqPlayTTS(String seq, DeviceKey imei, String voice);

    /**
     * 请求下发设备重启
     *
     * @param seq        序列号
     * @param imei       IMEI码
     */
    String reqRestart(String seq, DeviceKey imei);

    /**
     * 请求下发设备重启
     *
     * @param seq        序列号
     * @param imei       IMEI码
     * @param port       端口号
     */
    String reqRestartPort(String seq, DeviceKey imei, Integer port);

    /**
     * 请求下发参数设置
     *
     * @param seq        序列号
     * @param imei       IMEI码
     * @param params     设备参数
     */
    String reqSetParams(String seq, DeviceKey imei, EBDeviceParams params);

    /**
     * 扫码打开柜门：取充电池
     *
     * @param seq        序列号
     * @param imei       IMEI码
     * @param port       端口
     */
    String reqOpenDoor(String seq, DeviceKey imei, Integer port);


    /**
     * 回复设备登录
     *
     * @param seq        序列号
     * @param imei       IMEI码
     * @param info       设备信息对象
     */
    String respDeviceLogin(String seq, DeviceKey imei, EBoxDeviceInfo info);

    /**
     * 回复设备心跳
     *
     * @param seq        序列号
     * @param imei       IMEI码
     */
    String respDeviceHeart(String seq, DeviceKey imei);

    /**
     * 回复设备端口上报
     *
     * @param seq        序列号
     * @param imei       IMEI码
     */
    String respPortsNotify(String seq, DeviceKey imei);

    /**
     * 回复充电数据
     *
     * @param seq        序列号
     * @param imei       IMEI码
     */
    String respChargingData(String seq,DeviceKey imei);


    /**
     * 回复设备：开启充电柜门关闭
     * @param seq 序列号
     * @param imei IMEI码
     */
    String respBeginCloseDoor(String seq, DeviceKey imei);

    /**
     * 回复设备：结束充电柜门关闭
     * @param seq 序列号
     * @param imei IMEI码
     */
    String respEndCloseDoor(String seq, DeviceKey imei);



}
